home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / Inspectors / YourWS_Inspector / YourWS_Inspector.m < prev   
Text File  |  1995-06-12  |  3KB  |  117 lines

  1. #if 0
  2. -----------  YourWS_Inspector.h
  3. Created 8-13-92 (Greg Burd)
  4.  
  5. History:
  6.     
  7. ================= #import<std/disclaimer.h>
  8. You may freely copy, distribute, and reuse the code in this example.
  9. NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  10. fitness for any particular use.
  11. _________________________
  12. #endif
  13.  
  14.  
  15. #import <appkit/Application.h>
  16. #import <objc/NXBundle.h>
  17. #import <sys/param.h>
  18. #import "YourWS_Inspector.h"
  19.  
  20. #import "Text_Console.h"
  21.  
  22.  
  23. @implementation YourWS_Inspector
  24.  
  25. // This is a class var to ensure only one copy of this object is created.
  26. static id myself = nil;
  27.  
  28. // To make the + new method work just change the define below to
  29. //   the main nib name that you are using.
  30. #define MY_NIB_NAME "YourWS_Inspector"
  31.  
  32. /* ---- Responsible for loading the nib file */
  33. + new
  34. {
  35.     if (myself == nil) {
  36.         char path[MAXPATHLEN+1];
  37.         NXBundle *bundle = [NXBundle bundleForClass:self];
  38.       
  39.         self = myself = [super new];
  40.         if ([bundle getPath:path 
  41.                 forResource:MY_NIB_NAME
  42.                 ofType:"nib"]) {
  43.             [NXApp loadNibFile:path owner:myself];
  44.         } else {
  45.             fprintf (stderr, "Couldn't load %s.nib\n", MY_NIB_NAME);
  46.             myself = nil;
  47.         }
  48.     }
  49.     return myself;
  50. }
  51.  
  52. /* ---- This is the main point of functionality: this method is
  53.         called when the inspector is activited.
  54.         must call [super revert:sender]
  55.         Required in subclass */
  56. - revert:sender
  57. {    
  58.     /* - Do your stuff - */
  59.     [text printf:"--> -revert:sender\n"];
  60.     
  61.         //  You can change the names of the buttons in the inspector.
  62.     [[super okButton] setTitle:"Say Hello"]; 
  63.     
  64.     //  The message [super revert:sender]; also makes the inspector window's
  65.     //    'x' be complete. (eg. the window is not edited)
  66.     /* then call super, this is required */
  67.     [super revert:sender];
  68.     return self;
  69. }
  70.  
  71. /* ---- Optional, required if the inspector allows changing
  72.         attributes of the selection
  73.         must call [super ok:sender] */
  74. - ok:sender
  75. {
  76.     /* call super ok:. This is required */
  77.     [text printf:"--> -ok:sender\n"];
  78.     [text printf:"Hello World!\n"];
  79.     [text printf:"The window's 'x' should be closed.\n"];
  80.     
  81.     //  The message [super ok:sender]; also makes the inspector window's
  82.     //    'x' be complete. (eg. the window is not edited)
  83.     return [super ok:sender];
  84. }
  85.  
  86. /* ---- Optional -
  87.         marks the window as edited; When defined lets subclass reject touch: */
  88. - touch:sender
  89. {
  90.     [text printf:"--> -touch:sender\n"];
  91.     [text printf:"The window's 'x' should be open.\n"];
  92.     
  93.     //  This is making the window's 'x' open, as if there has been some
  94.     //    editing.  The message touch: is sent automatically by textDidChange:.
  95.     return [super touch:sender];
  96. }
  97.     
  98. /* ---- Optional -
  99.         calls touch; facilitates NIB connections of the textDelegates */
  100. - textDidChange:sender
  101. {
  102.     [text printf:"--> -textDidChange:sender\n"];
  103.     return self;
  104. }
  105.  
  106. /*---------------------------------------*/
  107.  
  108. - setEdited:sender
  109. {
  110.     [text printf:"--> -setEdited:sender\n"];
  111.     [self touch:self];
  112.     
  113.     return self;
  114. }
  115.  
  116. @end
  117.